package glemipsc.instructions;

import java.util.List;

import glemipsc.Address;
import glemipsc.Function;
import glemipsc.Type;
import glemipsc.implementations.Argument;

public interface Expression {
	public Type getType();
	
	public boolean isImmediate();
	public int getImmediateValue();
	
	public boolean isStored();
	public void setStoreAddress(Address addr);
	public Address getStoreAddress();
	public int getStoredSize();
	
	public void computeInstruction(Argument result, List<glemipsc.implementations.Instruction> instructions, Function func);
}
